iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
佛心分享-IT 人自學之術

出發吧!後端菜鳥:30 天的後端學習紀錄系列 第 2

Day 02|Node.js 是什麼?JavaScript 怎麼跑到後端去了

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260915/20169497OCAgY3rzNR.jpg

前言

後端開發可以使用很多不同的程式語言,例如 JavaScript、Python、Java、C#、Go 等。

在此系列裡,筆者選擇的是 JavaScript,原因很單純,因為本來就是從前端開始學程式,已經接觸過 JavaScript,如果可以使用熟悉的語言開始學後端,就不需要同時面對「新語言」和「新領域」兩件事,可以先把注意力放在 API、資料庫、驗證等後端觀念上。

但這時也出現了一個疑問:原本在瀏覽器裡執行的 JavaScript,為什麼突然可以拿來寫後端了?

瀏覽器裡的 JavaScript vs Node.js

剛開始學 JavaScript 時,我們通常都是在瀏覽器裡使用它。例如:

const button = document.querySelector(".button");

button.addEventListener("click", () => {
  console.log("Hello!");
});

JavaScript 可以控制網頁元素、監聽使用者操作,讓原本靜態的網頁產生互動。而瀏覽器之所以看得懂 JavaScript,是因為瀏覽器裡有負責執行 JavaScript 的「JavaScript 引擎」。

以 Chrome 為例,使用的就是 V8 引擎,V8 會負責解析與執行 JavaScript 程式碼。

而 Node.js 同樣使用 V8,除此之外還提供了許多瀏覽器沒有的功能,例如:

  • 讀取與寫入檔案
  • 建立 HTTP Server
  • 處理網路連線
  • 取得作業系統資訊
  • 操作檔案路徑

因此,JavaScript 不再只能控制網頁,可以直接在電腦或伺服器環境中執行。

Runtime 是什麼?

Node.js 官方的介紹寫到:

“Node.js is an open-source and cross-platform JavaScript runtime environment.”

這裡出現了一個蠻陌生的名詞:Runtime(執行環境),可以先簡單理解成「讓程式碼實際跑起來的環境」。

JavaScript 在不同的 Runtime 中,可以使用的功能也會有所不同。

在前端,JavaScript 通常是在瀏覽器裡執行。我們可以使用瀏覽器提供的功能,例如:

document.querySelector();
localStorage.getItem();
fetch();

其中 document 可以操作網頁內容,localStorage 可以在瀏覽器儲存資料,這些都是瀏覽器環境提供給 JavaScript 使用的功能。

而到了 Node.js,我們則是把 JavaScript 換到另一個環境執行。

所以像 documentwindow 這些由瀏覽器提供的功能,在 Node.js 裡並不存在。相反地,Node.js 提供了讀寫檔案、處理網路連線等適合電腦與伺服器使用的功能。

例如,我們可以透過 Node.js 讀取電腦裡的檔案:

const fs = require("fs");
const data = fs.readFileSync("hello.txt", "utf8");
console.log(data);

瀏覽器和 Node.js 都能執行 JavaScript,只是所在的執行環境(Runtime)不同,環境提供的功能也有所不同。

Node.js 適合拿來做什麼?和其他後端語言有什麼不同?

既然 Node.js 可以讓 JavaScript 在瀏覽器之外執行,它能做的事情也不再侷限於網頁互動。常見的用途包括:

  • 開發網站後端:處理登入、註冊、會員資料等網站背後的功能
  • 建立 API:接收前端傳來的請求,再把處理結果回傳給前端
  • 操作資料庫:新增、查詢、修改或刪除資料
  • 開發即時功能:例如聊天室、即時通知、多人協作
  • 製作自動化工具:例如批次處理檔案、整理資料或執行固定工作
  • 製作指令工具:不用開啟網頁,直接在終端機輸入指令使用

那麼,它和其他後端技術有什麼不同?

其實大部分常見的後端功能,不管使用 Node.js、Python、Java、C# 或 Go 都能做到,差別主要在於開發方式、生態系,以及各自擅長的應用情境。

例如 Python 也廣泛應用於資料分析與 AI;Java、C# 常見於大型企業系統;Go 則常被用於雲端服務與基礎設施。

Node.js 的其中一個特色,是很適合處理大量需要「等待」的工作。例如向資料庫查詢資料時,不需要一直停在原地等結果,可以先處理其他事情,等資料回來後再繼續。

因此,Node.js 很常被拿來開發 API、聊天室、即時服務等需要頻繁處理網路請求的應用。

安裝 Node.js

在開始執行 Node.js 程式之前,需要先把 Node.js 安裝到電腦裡。可以到 Node.js 官方網站下載安裝程式。通常會看到以下幾種版本:

  • Current:目前較新的版本,會優先加入新功能
  • LTS(Long-Term Support):長期支援版本,適合正式專案使用
  • EOL(End-of-Life):停止官方維護,不再提供安全性修補

如果是第一次安裝,建議選擇 LTS 版本。安裝完成後,打開終端機輸入:

node-v

如果有成功安裝,就會看到目前的 Node.js 版本,例如:

v24.7.0

接著再確認 npm 是否也有安裝成功:

npm -v

如果同樣有顯示版本號,就代表環境已經準備好了。

npm 通常會隨著 Node.js 一起安裝,所以一般不需要另外下載,完成這一步之後,就可以開始建立第一個 Node.js 專案。

npm 和 package.json 是什麼?

在嘗試第一個 Node.js 專案之前,需要先了解 npm 工具。

npm 是 Node.js 生態系常用的套件管理工具,開發時會經常需要搭配套件,例如 Express、nodemon 或其他第三方套件,都可以透過 npm 安裝與管理。

首先建立一個資料夾:

mkdir node-day02
cd node-day02

接著輸入:

npm init

終端機會詢問專案名稱、版本等資訊,完成之後,就會產生一個 package.json 檔案。

它就像是這個 Node.js 專案的基本資料表,會記錄專案名稱、版本、使用的套件以及可以執行的指令等資訊。

如果不想逐一回答問題,也可以直接使用:

npm init -y

讓 npm 使用預設值建立 package.json

建立第一個 Node.js 專案

既然要開始寫程式,不免俗還是要來一個最經典的 Hello World。

  1. 在專案資料夾中,建立 app.js 檔案

  2. 檔案裡寫入 console.log("Hello World!");

  3. 接著在終端機執行:

    node app.js
    

    就會在終端機看到以下訊息:

    Hello World!
    

到這裡,我們其實已經完成了一件以前寫前端時不太一樣的事情,這次沒有 HTML,也沒有打開瀏覽器,而是直接讓電腦執行 JavaScript。

加碼:nodemon 套件

開發過程中,如果每次修改 app.js 都要在終端機重新執行:

node app.js

其實有點麻煩,這時可以使用 nodemon 套件。因為 nodemon 通常只會在開發階段使用,所以可以把它安裝成開發依賴,在終端機輸入:

npm install --save-dev nodemon

也可以縮寫成:

npm install -D nodemon

安裝完成後,可以在 package.json 加入指令:

{
  "scripts": {
    "dev": "nodemon app.js"
  }
}

之後只需要執行 npm run dev,nodemon 就會監聽檔案變化,當我們修改並儲存 app.js 時,它會自動重新啟動 Node.js 程式,不需要每次手動輸入 node app.js

總結

今天先初步認識 Node.js,提供了另一個 JavaScript Runtime,讓 JavaScript 可以離開瀏覽器,在電腦與伺服器環境中執行,並實際建立一個小專案。

但如果要讓其他人透過網路向我們的程式取得資料,還少了一個重要的東西:Server。

下一篇就來看看,伺服器到底是什麼,以及 Node.js 要怎麼建立一個最簡單的 HTTP Server。


上一篇
Day 01|這30 天我要做什麼?
下一篇
Day 03|後端的起點:用 Node.js 建立第一台 Server
系列文
出發吧!後端菜鳥:30 天的後端學習紀錄10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言